home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 1 / CU Amiga Magazine CD-ROM Special Edition (1995)(EMAP Images)(GB)[Issue 1995-11].iso / Aminet / biz / dbase / scdb_12a.lzh / scdb_12a / scdb.doc < prev   
Text File  |  1995-05-21  |  15KB  |  431 lines

  1.  
  2. SCDB.DOC                SCDB version 1.2a                 Achim Gorski
  3.                             May 1995
  4.  
  5. SCDB, (c) Copyright 1994-95, Achim Gorski.  All Rights Reserved.
  6.  
  7. This  software  may be distributed for non-profit only.  This software
  8. is FREEWARE, but NOT FOR COMMERICAL USE!  This program is provided "as
  9. is"  without  warranty  of  any  kind.   All risks involved using this
  10. program  is  entirely  yours.  The author assumes no responsibility or
  11. liability  whatever  for  any damage or dataloss caused by using SCDB.
  12. Although  everything  has  been done to make sure the program is fully
  13. functional, the author cannot guarantee this for a 100%.
  14.  
  15.     Achim Gorski
  16.     Starenweg 27
  17.     50997  Koeln
  18.       Germany
  19.  
  20.  
  21.  
  22.  
  23.     Donations welcome but not solicited.
  24.  
  25.  
  26.  
  27.  
  28. SCDB - a Sound Carrier DataBase.
  29.  
  30. SCDB  is  based  on  isam (indexed sequential acces method) and uses a
  31. multilevel index structure.
  32. If  you  search  for Artist/Title and you know the first characters of
  33. Artist, SCDB should find this entry in N/436 comparisons and (N/218)+1
  34. for  a  unsuccessful  search.(  N = number of entries) Ok, this is not
  35. binarysearch  or  treesearch but it was the easiest and fastest way to
  36. realizse SCDB.
  37.  
  38.  
  39. ----------------------------------------------------------------------
  40. -- AMIGA: Don't use the Commodore-shell, 'cause it filters CTRL-C/D --
  41. -- OTHER: Some shells may filter Xon/Xoff CHRs : ^Q ^S ^X ^C        --
  42. --        Try to disable any filter or SCDB won't work correctly.   --
  43. ----------------------------------------------------------------------
  44.  
  45. ALPHA (DEC), INTEL, ...
  46.  
  47. !!  THE  DEFAULT  "Music.SDB" SCDB-DATABASE IS A 32 BIT BIG-ENDIAN  !!
  48. !!    BYTE ORDERING DATABASE.  USE THE BUILD-IN CONVERT FUNCTION    !!
  49.  
  50. Some   Processors   (e.g.    Intel   &   National  Semiconductor)  use
  51. little-endian  byte  ordering!   The default SCDB-database is saved in
  52. big-endian byte ordering.
  53.  
  54. Little-endian  byte  ordering  processors address the lowest byte with
  55. increasing addresses.
  56.  
  57. Example:
  58.  
  59. ADDRESS|00|01|02|03
  60. -------+--+--+--+--
  61. VALUE  |AA|BB|CC|DD     <- Big-endian byte ordering
  62.        |DD|CC|BB|AA     <- Little-endian byte ordering
  63.  
  64. ----------------------------------------------------------------------
  65.  
  66.  
  67.  
  68. Edit  the  files  '.SCDB-Category', '.SCDB-Label' and '.SCDB-Type' for
  69. your  own  configuration.  Maximum possible entries in 'Category'(max.
  70. 31 chars per row) and 'Label'(max.  38 chars per row) are 99.  Maximum
  71. possible  entries  in  'Type'(max.   12  chars per row) are 31.  These
  72. files  should  be in the current directory (only 'Type' has a build-in
  73. default  configuration).   After changing 'Type' you should reorganize
  74. your   database  or  you  will  get  wrong  statistics!   The  default
  75. 'Music.SDB'  SCDB-database  will  be read if no argument is given!  Do
  76. not read this document (waste of time)!  Use the program!!
  77.  
  78. Try 'SCDB -h'.
  79.  
  80.  
  81. Short INFO about SCDB:
  82.  
  83.  
  84. COMMAND MODE
  85.  
  86.  
  87. CTRL-?
  88.    Help
  89.  
  90.  
  91. CTRL-F
  92.    Find  Artist/Title.   Try TAB-completion (once:  ARTIST-completion,
  93. twice:   TITLE-completion).   The  function  is  case  insensitive and
  94. ignores every none-alphanumeric-char!
  95.  
  96.  
  97. F
  98.    Find next Artist/Title
  99.  
  100.  
  101. CTRL-L
  102.    Log  record  IN  or  OUT.   Ok,  you loaned it - this should change
  103. LOCATION.  Your chance to change it.
  104.  
  105.  
  106. L
  107.    List loaned records.
  108.  
  109. M
  110.    View comment (More)
  111.    Commands:
  112.    <Space> ............. Next Page (More)
  113.    q or ctrl/c ......... Quit
  114.    < or 7 .............. First Page
  115.    > or 1 .............. Last Page
  116.    b, DEL or <BackSpace> Previous Page
  117.  
  118.  
  119. V
  120.    View index ON/OFF
  121. If index ON:
  122.  
  123.         KEY                     ACTION
  124.        ----------------------------------------------------
  125.         7                       jump to top of page
  126.         1                       jump to bottom of page
  127.         SPACE/DEL               one page forward/backward
  128.         arrow right/left        one page forward/backward
  129.         arrow up/down or +/-    one line forward/backward
  130.  
  131.  
  132. --Cherrymoon <--.
  133.   +---Trax II   |                                *L 10/1994 Vinyl-Maxi
  134.       ^         |                                ^    ^      ^
  135.       |         `-- artist                       |    |      |
  136.       `------------ title     record is loaned --´    |      |
  137.                                   release date -------´      |
  138.                                           type --------------´
  139.  
  140.  
  141. S
  142.    Searches for the string found in 'See also'
  143.  
  144.  
  145. CTRL-S
  146.    Statistics
  147.                 TT:    0y  0d 0h 0m 0s (Total time of Total Time) -:))
  148.                         |   |  |  |  |
  149.                         |   |  |  |  `-- seconds
  150.                         |   |  |  `----- minutes
  151.                         |   |  `-------- hours
  152.                         |   `----------- days
  153.                         `--------------- years
  154.  
  155. CTRL-P
  156.    Print  current  entry  to  SCDB_OUTPUT.   If  you want to use this
  157. functions, you should set the enviroment-variable 'SCDB_OUTPUT'.
  158.  
  159.                 UNIX :  set SCDB_OUTPUT=value
  160.                         export SCDB_OUTPUT
  161.                         (depends on your shell)
  162.                         "value" is the printer-device!
  163.                         BSD Unix: look at /etc/printcap
  164.                         for the printer-device!
  165.                 AMIGA:  setenv SCDB_OUTPUT="prt:"
  166.                 OTHER:  Read your system manual !
  167.  
  168. SCDB_OUTPUT should be an ASCII-printer or a filename.
  169.  
  170.  
  171. P
  172.    Print current entry (short output!).
  173.  
  174.  
  175. CTRL-R
  176.    Reorganizes the database.  You should do this if you update from an
  177. old  to  a new SCDB-version.  Regorganize will correct all statistics,
  178. remove  trash  and  sort  the  database  on  disk.  Never reorganize a
  179. database  if  you  run  SCDB twice or more on the same database!  This
  180. cost only your time and will reorganize nothing.
  181.  
  182.  
  183. CTRL-H
  184.    Hunts  for  specific  information  in  the  whole  database.   This
  185. function  will  need some time !  The function is case insensitive and
  186. ignores  every  none-alphanumeric-char!   TAB completes Artist, Title,
  187. Label,  Type,  Category.  It is possible to type an Artist-name in the
  188. Title-field.   The result is the first title of the given Artist-name.
  189. Example:
  190.                 Title: boo<TAB>
  191.                        ...
  192.                 Title: 24 Hours
  193.  
  194.  
  195. CTRL-W
  196.    Reads  the  whole  database and creates a LIST of all entries which
  197. match  with  the  given  key(s).   Hunts for specific information like
  198. CTRL-H.   The  output  goes to SCDB_OUTPUT (look at CTRL-P).  '**' in
  199. Artist-field creates a list of the whole database.
  200.  
  201.  
  202. W
  203.    Reads  the whole database and creates a LIST (short output!).  '**'
  204. in Artist-field creates a list of the whole database.
  205.  
  206.  
  207. CTRL-O
  208.    Prints  a  CassCover  of  selected  entries to SCDB_PRINTER.  While
  209. choosing  entries  it  is possible to use every function of SCDB (e.g.
  210. FIND,  HUNT,...).   If  you want to use this functions, you should set
  211. the  enviroment-variable  'SCDB_PRINTER'.
  212.  
  213.                 UNIX :  set SCDB_PRINTER=value
  214.                         export SCDB_PRINTER
  215.                         (depends on your shell)
  216.                         "value" is the printer-port!
  217.                         BSD Unix: look at /etc/printcap
  218.                         for the port name!
  219.                 AMIGA:  If your printer is on parallel-port:
  220.                         setenv SCDB_PRINTER="par:"
  221.                 OTHER:  Read your system manual !
  222.  
  223. Your  printer  should support IBM/Epson printer commands and character
  224. sets and should not set to stay in panel style at power-up.
  225.  
  226.  
  227. CTRL-U
  228.    Print   label.   Output  goes  to  SCDB_PRINTER.   You  should  use
  229. self-adhesive labels (101,6 x 35,7 mm).
  230.  
  231.  
  232. CTRL-^
  233.    Import  ASCII  delimited.   Press TAB for filename completion.  The
  234. IMPORT-function  is just a by-product of my own imported database.  So
  235. don't overrate it!
  236.  
  237.  
  238. CTRL-\
  239.    This  function  let  you  exchange  SCDB-databases  from  different
  240. systems.  Press TAB for filename completion.  It is possible to import
  241. any  SCDB-database  from  any system to any system!  Little/Big-endian
  242. byte  ordering  or  32/64  bit(or  more)  systems  - no matter !  This
  243. function imports all.
  244.  
  245.                 Example:
  246.                 [Input:]        ../alpha/Music.SDB
  247.  
  248. This  will  import  a  64  bit  little-endian  byte ordering database.
  249. Comment:   importing a 64 bit database to a 32 bit system works if the
  250. database is less than 4 Gbytes (2^32)!
  251. This function also imports old SCDB-databases.  Old SCDB-databases are
  252. less or equal version 1.0e .
  253.  
  254.  
  255.  
  256.    ... all other functions should explain itself.
  257.  
  258.  
  259.  
  260. EDITOR MODE
  261.  
  262.  
  263. Functions   should  explain  itself.   :-)  (lazy  programmer)  (Rule:
  264. writehowyalike!)
  265.  
  266. While editing Tracks it is possible to press TAB for Artist completion
  267. (only  if Artist is 'Various Artists' and only in the second half of a
  268. string).
  269.  
  270. Use keyboard shortcuts in window (e.g. Label, Type, Category,...)
  271.  
  272.  
  273. No  further  decription  at this time:  Just use it.  Hit the keys and
  274. you will see the results.
  275.  
  276. FUTURE: Any ideas??: send me mail.
  277.  
  278.  
  279.  
  280. ----------------------------------------------------------------------
  281.  
  282.  
  283. FOR THOSE WHO WANT TO KNOW MORE ABOUT THIS DATABASE:
  284.  
  285.  
  286.         Some information about the input-fields:
  287.  
  288.         Field name      Attributes        Chars  Comment
  289.         --------------------------------------------------------------
  290.         Artist          Capitalize Words    49   Minimum: 1 char !
  291.         Title           Capitalize Words    49   Not after "'"
  292.         Label           Capitalize Words    38   Not after "'"
  293.         Catalog         Upper case          26
  294.         See also        Text                68
  295.         Type            Text                12
  296.         Released        Numeric              7   (?, mm/yyyy or yyyy)
  297.         Number          Numeric              2   0 < x < 100
  298.         Tracks          Numeric              4   0 < x < (99*Number)
  299.         Category        Capitalize Words    31
  300.         Location        Text                23
  301.         Barcode         Numeric             18
  302.         Comment         Text              1368
  303.         Info            Upper case          46
  304.         TRK             Capitalize Words    68   Not after "'"
  305.         Time            Numeric, Time        5   (mm:ss)
  306.                         dependent auto-return(time-out: 1.5s +/- 0.5s)
  307.  
  308.  
  309.  
  310.    THE STRUCTURE OF THE MAIN-FILE:
  311.  
  312.  
  313.    pos  length[byte]    field           comment
  314.  ---------------------------------------------------------------------
  315.  ( <= Version 1.0c (02.03.95):                                       )
  316.  ( 0.   1               ID              only once in the database    )
  317.  (                                      always 8                     )
  318.  
  319.    >= Version 1.0d:
  320.         3               ID              only once in the database
  321.                                         (always in Big-endian byte 
  322.                                          ordering!!) Looks like that:
  323.    struct scdb_id {
  324.           unsigned int   ID_1:4;        /* ID_1: always 8           */
  325.           unsigned int endian:1;        /* 1/0 big/little-endian    */
  326.           unsigned int  longs:6;        /* bits=((longs+1)*4*8)     */
  327.           unsigned int   ID_2:7;        /* ID_2=ID_1+endian+longs   */
  328.           unsigned int       :6;        /* Future                   */
  329.         };
  330.  
  331.    >= Version 1.1 :
  332.    struct scdb_id { ...
  333.           unsigned int   ID_2:7;        /* ID_2=ID_1+endian+longs+1 */
  334.                     ... };
  335.    >= Version 1.2 :
  336.    struct scdb_id { ...
  337.           unsigned int   ID_2:7;        /* ID_2=ID_1+endian+longs+2 */
  338.                     ... };
  339.    ...and so on.
  340.  
  341.    1.   unsigned long   size of record
  342.  
  343.    2.   1               length
  344.         max. 49         Artist          min. 1
  345.    3.   1               length
  346.         max. 49         Title
  347.    4.   1               length
  348.         max. 38         Label
  349.    5.   1               length
  350.         max. 26         Catalog
  351.    6.   1               length
  352.         max. 12         Type
  353.    7.   1               length
  354.         max. 7          Released
  355.    8.   1               ..
  356.         max. 2          Number          min. '1'
  357.    9.   1               ..
  358.         max. 4          Tracks          min. '1'
  359.    10.   1              ..
  360.         max. 31         Category
  361.    11.  1               length=23       length always 23
  362.         23              Location
  363.    12.  1               length
  364.         max. 18         Barcode
  365.    13.  1               ..
  366.         11              Loaned on
  367.    14.  1               ..
  368.         8               Total Time
  369.    15.  1               ..
  370.         11              Rec-Date
  371.    16.  1               ..
  372.         max. 68         See also
  373.  
  374.    17.
  375.    <= Version 1.0e:
  376.       18 lines comment
  377.       saved in the known format: length,string,length,string,....
  378.                                   \__1   \__max.76
  379.    >= Version 1.1 :
  380.         unsigned long   number of x lines
  381.         x lines comment saved in the known format:
  382.                                   length,string,length,string,....
  383.                                    \__1   \__max.78
  384.    18.
  385.    <= Version 1.0e:
  386.       Number of tracks per disc per record.
  387.       Example:
  388.         Number=2, Tracks=23 (No.1: 11TRKs, No.2: 12TRKs.
  389.         something like that should be saved:
  390.         0b 0c
  391.  
  392.    >= Version 1.1 :
  393.                                                      __/info
  394.       Number of tracks per disc per record & length, string per disc.
  395.                                                \__1   \__max.46
  396.       Example:
  397.         Number=2, Tracks=23, No.1: 11TRKs, No.2: 12TRKs,
  398.         Info 1: This is an, Info 2: example .
  399.         something like that should be saved:
  400.         0b 0a This is an  0c 07 example
  401.  
  402.    19.
  403.    <= Version 1.0e:
  404.        length,track-string,length,time,...... (for every track)
  405.         \__1   \__max.68    \__1   \__max.5
  406.  
  407.    >= Version 1.1 :
  408.        length,track-string,length,time,...... (for every track)
  409.         \__1   \__max.68    \__1   \__max.4 ( NO ':' !)
  410.  
  411.    ...next record -> goto 1.
  412.  
  413.  
  414.    The index-structure is a little bit different (build your own).
  415.    (I really hate writing documents ..^@#]´`%$`~/:@}[§"!}+..)
  416.  
  417.  
  418.  
  419.  
  420. ----------------------------------------------------------------------
  421.                        |  |  |  |  |  |  |  |  |
  422.                        |  |  |  |  |  |  |  |  |
  423.                        |  |  |  |  |  |  |  |  |
  424.                        !  !  SAVE THE VINYL !  !
  425.                        |  |  |  |  |  |  |  |  |
  426.                        |  |  |  |  |  |  |  |  |
  427.                           |  |  |  |  |  |  |
  428.                              |  |  |  |  |
  429.                                 |  |  |
  430.                                    |
  431.